/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package master_server;

import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Scanner;

/**
 *
 * @author Karen & Renaud & François
 */
public class Master_server {

    public static void main(String[] args) throws IOException, SecurityException {


        ArrayList<SecretCode> parties = new ArrayList<>();
        HashMap<String, SecretCode> listeJC = new HashMap<>();
        int port = 39999;


        parties.add(new SecretCode(0, 8)); // user bidon
        ServerSocket serveur = new ServerSocket(port);
        Socket s;

        System.out.println(" Vous avez le choix entre :"
                + "\n\t 1) JDBC ACCES"
                + "\n\t 2) HIBERNATE ACCES"
                + "\n\t q) Quitter");

        Scanner lecture = new Scanner(System.in);
        String choix = " ";

        while (choix.charAt(0) != '1' && choix.charAt(0) != '2' && choix.charAt(0) != '3' && choix.charAt(0) != 'q') {
            //choix.length() != 1 &&  
            choix = lecture.next();
        }
        //---------------- JDBC
        if (choix.charAt(0) == '1') {

            BddMastermind bdd = new BddMastermind();
            bdd.connexion();
            try {
                System.out.println(" Serveur de jeu Mastermind sur le port " + port);
                while (true) {
                    s = serveur.accept();
                    new ThreadClient(listeJC, parties, bdd, s).start(); // instanciation et démarrage    
                    // System.out.println("il y a "+parties.size()+" parties en cours");
                }

            } catch (IOException io) {
                System.err.println("Le port " + port + " est deja occupé par un autre serveur !");
            }
            // -----------HIBERNATE 
        } else if (choix.charAt(0) == '2') {
            HiberMastermind bdd = new HiberMastermind();
            try {
                System.out.println(" Serveur de jeu Mastermind sur le port " + port);
                while (true) {
                    s = serveur.accept();
                    new HThreadClient(listeJC, parties, bdd, s).start(); // instanciation et démarrage    
                    // System.out.println("il y a "+parties.size()+" parties en cours");
                }

            } catch (IOException io) {
                System.err.println("Le port " + port + " est deja occupé par un autre serveur !");
            }
        } else {
            try {
                serveur.close();
                System.out.println(" Fermeture de la connection serveur ..");
            } catch (IOException ioe) {
                System.err.println(ioe);
            }

        }
    }
}
